import {reqspecslist,reqspecscount} from "../../http/api"
//状态
let state = {
    // 1,初始化数据
    arr:[],
    total:0,//总条目
    size:2,//一页的条目
     page:1,//当前页码

}

//导出数据
let getters = {
    // 2导出数据
    arr(state){
        return state.arr
    },
    total(state){
        return state.total
    },
    size(state){
        return state.size
    },

}

//修改状态
let mutations = {
    //3.修改
    changeArr(state,arr){
        state.arr = arr;
    },
    changeTotal(state,total){
        state.total = total;
    },
    changePage(state,page){
        state.page = page;
    },

}

//做异步 做逻辑
let actions = {
    reqList({state:{page,size},commit,dispatch}){
        reqspecslist({page,size}).then(res=>{
            if(res.data.code==200){
                //修改arr
                let arr = res.data.list?res.data.list:[]
                //获取到arr的长度是0，那么如果当前页不是第一页就请求上一页
                if(arr.length==0&&page!=1){
                    //修改page
                    commit("changePage",page-1)
                    //再次请求列表
                    dispatch("reqList")
                    return
                }
                commit("changeArr",arr)
            }
         })
    },
    // 4,请求arr
    reqArr({commit,dispatch}){
        //发起请求列表
        dispatch("reqList")
        //请求总数
        reqspecscount().then(res=>{
            if(res.data.code==200){
                //修改总数
                commit("changeTotal",res.data.list[0].total)
            }
        })
    },
    //修改页码的
    changePage({commit,dispatch},e){
        //修改page
       commit("changePage",e)
       //再次次请求列表
       dispatch("reqList")
    }
}

// 导出
export default {
    state,
    getters, 
    mutations, 
    actions,
    namespaced: true
}